A previous computer control system is shown and described in U.S. Pat. No. 5,301,100 entitled "Method of and apparatus for constructing a control system and control system created thereby" that issued to Ferdinand H. Wagner on Apr. 5, 1994, the disclosure of which is hereby incorporated by reference.
The majority of computer control systems require programming for each application. The process of programming is error-prone and requires testing of implemented logic and the correctness of program statements which express this logic. The pure logic of the application is deeply buried in the program code. There is no known way to isolate the logic design from peculiarities of the programming language and its data representation.
The alternatives to systems which are programmed are systems which are specified. The advantages of control systems which are specified in comparison to systems which are programmed are well known and summarized e.g. by Davis in "A Comparison of Techniques for the Specification of External System Behavior", Communications of the ACM September 1988 pp. 1098-1115. Also as taught in reference U.S. Pat. No. 4,796,179 a control system can be built using subroutines describing standard control blocks. The subroutines are then linked together into the control system. Another approach is based on table driven finite state machines which are specified. This is suitable for systems intended for applications characterized by a high number of control decisions.
As shown in the article by Davis for the table approach, boolean tables grow exponentially with the number of input and states. Because of this well known growth phenomena, a table driven approach has been limited to rather simple applications. Typically, only selected subsystems of a complex system are implemented as table driven finite state machines.
Input signals come to a control system from different analog and digital sensors. The signals are often of different natures: some are digital, others are analog. The digital signals are two-valued (boolean) or multivalued (numbers). The analog signals in their original form are of no use in a digital control system. Only some specific values of an analog signal are relevant for control purposes. A table driven state machine can process digital information only. Therefore, the use of table driven systems was limited to applications where input has a standard boolean form until the patent of Wagner. The disadvantages of the finite state machine (FSM) of Wagner and similar FSMs is that multi-FSM environments were created in an ad-hoc way with static FSM instances and these FSMs involved considerable overhead to create the necessary platform, so they were very rarely used. The FSM previously had to have all supporting code (about 3,000 lines) written by hand.
Therefore, it is an object of the present invention to provide a method and apparatus for providing a system of multiple cooperating finite state machines.
It is another object of the present invention to provide a method and apparatus for providing a system of multiple cooperating finite state machines with supporting code.